﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Aliphant.Interface.Form
{
    internal interface IChatAI
    {
        /// <summary>
        /// 输出事件
        /// </summary>
        event Action<ChatContent>? OutPutHandle;

        /// <summary>
        /// 输入事件
        /// </summary>
        event Action? InPutHandle;

        /// <summary>
        /// 启动对话线程
        /// </summary>
        void Start();

        /// <summary>
        /// 重启（更新配置）
        /// </summary>
        void Load(GptConfig config);

        /// <summary>
        /// 停止对话线程
        /// </summary>
        void Stop();

        /// <summary>
        /// 停止输出
        /// </summary>
        void Pause();

        /// <summary>
        /// 唤醒对话线程
        /// </summary>
        void WeekUp();

        /// <summary>
        /// 添加对话消息
        /// </summary>
        /// <param name="message"></param>
        void AddMessage(string message);

        /// <summary>
        /// 新会话
        /// </summary>
        void NewSession();

        /// <summary>
        /// 刷新会话
        /// </summary>
        void RefreshSession();
    }
}
